package proto

type InfoResp struct {
	Timestamp     int64  `json:"ts"`
	LoginUrl      string `json:"lu"`
	AliveUrl      string `json:"au"`
	ProveV6Url    string `json:"p6u"`
	SpeedUrl      string `json:"su"`
	SpeedDuration int    `json:"sd"`
}

type LoginResp struct {
	Timestamp     int64    `json:"ts"`
	AgentInterval int64    `json:"ai"`
	BlockCount    int64    `json:"bc"`
	TcpRateLimit  int64    `json:"trl"`
	UdpRateLimit  int64    `json:"url"`
	HttpRateLimit int64    `json:"hrl"`
	RateDelta     int64    `json:"rd"`
	PerUseCount   int      `json:"puc"`
	TcpAddresses  []string `json:"tas"`
	UdpAddresses  []string `json:"uas"`
	HttpUrls      []string `json:"hus"`
}

type AliveResp struct {
	Timestamp      int64 `json:"ts"`
	NeedUpdateRate int   `json:"nur"`
	TcpRateLimit   int64 `json:"trl"`
	UdpRateLimit   int64 `json:"url"`
	HttpRateLimit  int64 `json:"hrl"`
	PerUseCount    int   `json:"puc"`
}

type PusherInfoResp struct {
	Timestamp     int64  `json:"ts"`
	LoginUrl      string `json:"lu"`
	AliveUrl      string `json:"au"`
	SpeedUrl      string `json:"su"`
	SpeedDuration int    `json:"sd"`
	BeRunning     int    `json:"br"`
}

type PusherLoginResp struct {
	Timestamp      int64  `json:"ts"`
	PusherInterval int64  `json:"pi"`
	StatInterval   int64  `json:"si"`
	BlockCount     int64  `json:"bc"`
	UdpRateLimit   int64  `json:"url"`
	RateDelta      int64  `json:"rd"`
	PerUseCount    int    `json:"puc"`
	StatAddr       string `json:"sa"`
}

type PusherAliveResp struct {
	Timestamp int64 `json:"ts"`
}
